package integer;
/*
包装类
包装类是为了解决基本类型不能直接参与面向对象开发的问题，使得基本类型可以以“对象”的形式存在。
包装类都定义在java.lang包中作为基础类使用，6个数字类型的包装类继承自Number，其余两个直接继承自Object
int java.lang.integer
char java.lang.character
 */
public class IntegerDemo {
    public static void main(String[] args) {
        //基本类型转换为包装类
        int d = 123;
        Integer i1 = new Integer(d);
        Integer i2 = new Integer(d);
        System.out.println(i1==i2);//false
        //包装类都重写过equals方法了，故可以比较内容
        System.out.println(i1.equals(i2));//true

        /*
        基本类型转换为包装类建议使用包装类的静态方法valueOf，
        对Integer而言，该方法会重用1字节之内正数的包装类对象，即在-128到127之间用valueOf，会指向同一个对象
         */
        Integer j1 =Integer.valueOf(d);
        Integer j2 =Integer.valueOf(d);
        System.out.println(j1==j2);//true
        System.out.println(j1.equals(j2));//true

        //包装类转换为基本类型
        int i = i1.intValue();
        System.out.println(i);//123
        double dou = i1.doubleValue();//也可以用其他基本类型返回
        System.out.println(dou);//123.0



    }
}
